Linux 使用 nohup &/setsid 开启和关闭后台运行进程的方法 |
您所在的位置:网站首页 › setsid shell › Linux 使用 nohup &/setsid 开启和关闭后台运行进程的方法 |
让命令提交后不受本地关闭终端窗口,以及网络断开连接的干扰,一般使用后台程序执行命令 setsid 和 nohup &,我们来看看如何使用这些命令开启和关闭后台运行脚本。 开启后台执行脚本 方法 1:nohup &假如执行脚本的命令是 sh test.sh ,只需要在命令前面前面加 nohup ,后面加 &,在这个例子中,就是: nohup sh test.sh & &:是指在后台运行,但是当用户退出(挂起)的时候,命令会自动跟着结束。 nohup:是指不挂断运行,可以使命令永久的执行下去,和用户终端没有关系 将 nohup 和 & 结合使用,就可以实现使命令永久地在后台执行了。 方法 2:setsid假如执行脚本的命令是 sh test.sh ,只需要在命令前面前面加 setsid ,在这个例子中,就是: setsid sh test.shsetsid 命令子进程从父进程继承了:SessionID、进程组 ID 和打开的终端。子进程如果要脱离这些,代码中可通过调用 setsid 来实现。 关闭后台执行脚本 查看后台进程先使用 ps -aux|grep | grep -v grep 命令找到脚本后台运行的进程。刚才我们在后台运行了脚本 test.sh ,那么查找该脚本进程的写法就是: ps -aux|grep test.sh| grep -v grep 关闭后台进程假如查询到的进程 ID 是 1219,那么使用 kill 或者 kill -9 命令将其终止。 # 终止进程 kill 1219 # 强制终止进程 kill -9 1219 无法终止进程用 kill 杀掉后还是存在此进程,原因有两种 此进程是僵尸进程/此进程是"核心态"进程,可以尝试找到引用它的父进程 PPID,将父进程终止;或者尝试重启服务器。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |